Date		:	22 avril 1990
		Protection	:	MOT DE PASSE
		Temps pass�	: 	4 heures
		Soft		:	SKYCHASE    	
		Outils		:	PERISCOPE + SWITCH
		Soci�t�		:	BRODERBUND
		Fichier		:	EGACHASE.EXE
		Divers		:	PACKED FILE
		Origine		:	INDONESIE
		Num�ro		:	018


	En sautant dans le programme avec le switch � la demande de mot de
	passe on tombe dans une s�rie d'instructions OUT qui en fait repr�-
	sentent l'animation graphique de l'�cran. En d�roulant le programme
	U apr�s U on trouve une instruction HLT pr�c�d�e d'un saut index�.
	
		JMP [DI+1164]

	Avec le contenu de 1164 �gal � 0A on se retrouve avec le message:
	SORRY, WRONG ANSWER etc...
	En placant 00 dans 1164 le programme fonctionne!
	
	1) Premier essai avec PCTOOLS pour rendre la position 1164 �gale �
	   zero.
	   En cherchant la chaine avec PCTOOLS je m'apercois que le contenu
	   de 1164 est d�j� � l'origine �gal � 00. C'est donc le programme
	   qui y inscrit cette valeur.

	2) Second essai; voir � quoi correspond le saut [DI+1164] avec 1164
	   � zero et tenter de sauter directement...
	   R�sultat; le soft se plante.

	3) Conserver le saut index� et �crire juste avant 00 en 1164....
	   Replantage.

	Apr�s un long examen et des tatonnements tous azimuts j'arrive � la
	conclusion que cette position m�moire est utilis�e sans arret par
	le programme car en examinant cette position par la suite elle
	contient 01 pour le d�roulement normal du jeu. Lorsque le mot de
	passe est correct elle contient 00 et 0A s'il est erron�.
	Il ne reste plus que la solution de tester la position 1164 et d�s
	qu'elle contient 0A lui faire contenir 00.
	Il faut donc trouver une zone de data inutilis�e ( en principe ca
	n'existe pas ) ou qui ne sert � rien ( ca, ca existe. ) en
	l'occurrence la zone d'affichage du mot de passe et des messages du
	style SORRY....
	La suite d�crit la m�thode et les instructions utilis�es.

	Instructions rajout�es ou modifi�es (*):

	La zone de donn�es 09EE-09FC affichait la demande de mot de passe,
	j'ai utilis� cet emplacement pour y placer la portion de code qu'il
	fallait rajouter pour d�tourner la protection.


	3166:09EE 2E            CS:				*	
	3166:09EF 803E64110A    CMP     BYTE PTR [1164],0A	*
	3166:09F4 7506          JNZ     09FC			*
	3166:09F6 2E            CS:				*
	3166:09F7 C606641100    MOV     BYTE PTR [1164],00	*
	3166:09FC E96707        JMP     1166			*
	3166:1161 E98AF8        JMP     09EE			*	
	3166:1164 0A00          OR      AL,[BX+SI]
	3166:1166 2E            CS:
	3166:1167 8B3E6411      MOV     DI,[1164]
	3166:116B D1E7          SHL     DI,1
	3166:116D 2E            CS:
	3166:116E FFA57211      JMP     [DI+1172]
	3166:1172 8811          MOV     [BX+DI],DL
	3166:1174 F4            HLT


		Programme d'origine non modifi�:


	3166:1161 EB03          JMP     1166
	3166:1163 90            NOP
	3166:1164 0A00          OR      AL,[BX+SI]
	3166:1166 2E            CS:
	3166:1167 8B3E6411      MOV     DI,[1164]
	3166:116B D1E7          SHL     DI,1
	3166:116D 2E            CS:
	3166:116E FFA57211      JMP     [DI+1172]
	3166:1172 8811          MOV     [BX+DI],DL
	3166:1174 F4            HLT

	NOTE: Cette protection n'a �t� enlev�e que sur le fichier EGA/VGA,
	      elle est toujours active sur les fichiers CGA et HERCULES.

	Avec PCTOOLS rechercher        : 536F7272792C207772................
	ET MODIFIER PAR	               : 2E803E64110A75062EC606641100E9A707
	Puis chercher SL 94 et DEP 499 : EB0390 et remplacer par E94AF8

		FREDDY